Al lanzar un test en Angular usando jasmine obtenemos el siguiente error:
Error: NG0301: Export of name 'ngForm' not found!
El error solo ocurre al lanzar el test y no al lanzar la aplicación angular de forma normal
El error se da porque estamos utilizando el ngForm en el template:
<form [formGroup]="userForm" #form="ngForm">
Pero a pesar de que tenemos definido el ReactiveFormsModule en el app.module.ts el test no lo importa, tenemos que definirlo manualmente dentro del test:
Dentro del objeto de la configuración de los tests incluimos el imports:
imports: [ ReactiveFormsModule ]
El codigo final queda asi:
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ UserComponent ],
imports: [ ReactiveFormsModule ]
})
.compileComponents();
});
NOTA: Hay que hacer el import del propio modulo a parte de declararlo en la configuración del test:
import { ReactiveFormsModule } from '@angular/forms';
Angular | variable | inicializacion